package com.nebula.api.modules.product.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 商品(单个商品,有库存量,例如iphone10,内存是256G,尺寸是9.6寸)
 * </p>
 *
 * @author my
 * @since 2022-09-17
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class ShopProduct implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private String id;

    /**
     * 商品名(短的)
     */
    private String name;

    /**
     * 商品详情页标题
     */
    private String title;

    /**
     * 副标题
     */
    private String subTitle;

    /**
     * 通用标题数组的json
     */
    private String titleJson;

    /**
     * 分类
     */
    private Long productId;

    /**
     * 产品,来源
     */
    private String origin;

    /**
     * 需要兑换的积分
     */
    private Long coin;

    /**
     * 活动减免优化积分
     */
    private Integer discountCoin;

    /**
     * 真实价格
     */
    private Integer prize;

    /**
     * 参数 json 也是json,不过这个作为不用跳转参数,商品本身的参数
     */
    private String detailParameter;

    /**
     * 参数 json 列表 这个是需要跳转的,带链接的,
     */
    private String parameterJson;

    /**
     * 活动优惠价格
     */
    private Integer discountPrize;

    /**
     * 商品正文描述
     */
    private String description;

    /**
     * 短介绍
     */
    private String shortDescription;

    /**
     * 介绍结合
     */
    private String descriptionJson;

    /**
     * 图集 json集合
     */
    private String imgAltas;

    /**
     * 封面图
     */
    private String coverImg;

    /**
     * 积分商城首页图
     */
    private String indexImg;

    /**
     * 商品排序
     */
    private Integer list;

    /**
     * 短名称
     */
    private String shortName;

    /**
     * 备注
     */
    private String remark;

    /**
     * 评论
     */
    private String comment;

    /**
     * 额外字段
     */
    private String extraField;

    /**
     * 库存量
     */
    private Long stock;

    /**
     * 商品状态 商品最好不好删除，只设置下架状态就好了
     */
    private Integer status;

    /**
     * 可以进一步结合到活动
     */
    private Long activityId;

    /**
     * 多少人去收藏了
     */
    @TableField("`like`")
    private Long like;

    /**
     * 搜索的关键词
     */

    private String keyword;

    /**
     * 额外的参数
     */
    private String addParameter;

    /**
     * 商品入库时间
     */
    private LocalDateTime addTime;

    /**
     * 1表示是新款
     */
    private Integer isLatest;

    /**
     * 1表示是热卖
     */
    private Integer isHotSale;

    /**
     * 版本描述
     */
    private String versionDescription;

    /**
     * 每件商品的限购数量
     */
    private Integer buyTotalLimit;

    /**
     * 仅支持自提 如果数值为1,则仅支持自提
     */
    private Integer onlyPickUp;


}
